home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / sun / reflect / UTF8.class (.txt) < prev   
Encoding:
Java Class File  |  2006-11-29  |  777 b   |  48 lines

  1. package sun.reflect;
  2.  
  3. class UTF8 {
  4.    static byte[] encode(String var0) {
  5.       int var1 = var0.length();
  6.       byte[] var2 = new byte[utf8Length(var0)];
  7.       int var3 = 0;
  8.  
  9.       try {
  10.          for(int var4 = 0; var4 < var1; ++var4) {
  11.             int var5 = var0.charAt(var4) & '\uffff';
  12.             if (var5 >= 1 && var5 <= 127) {
  13.                var2[var3++] = (byte)var5;
  14.             } else if (var5 != 0 && (var5 < 128 || var5 > 2047)) {
  15.                var2[var3++] = (byte)(224 + (var5 >> 12));
  16.                var2[var3++] = (byte)(128 + (var5 >> 6 & 63));
  17.                var2[var3++] = (byte)(128 + (var5 & 63));
  18.             } else {
  19.                var2[var3++] = (byte)(192 + (var5 >> 6));
  20.                var2[var3++] = (byte)(128 + (var5 & 63));
  21.             }
  22.          }
  23.  
  24.          return var2;
  25.       } catch (ArrayIndexOutOfBoundsException var6) {
  26.          throw new InternalError("Bug in sun.reflect bootstrap UTF-8 encoder");
  27.       }
  28.    }
  29.  
  30.    private static int utf8Length(String var0) {
  31.       int var1 = var0.length();
  32.       int var2 = 0;
  33.  
  34.       for(int var3 = 0; var3 < var1; ++var3) {
  35.          int var4 = var0.charAt(var3) & '\uffff';
  36.          if (var4 >= 1 && var4 <= 127) {
  37.             ++var2;
  38.          } else if (var4 != 0 && (var4 < 128 || var4 > 2047)) {
  39.             var2 += 3;
  40.          } else {
  41.             var2 += 2;
  42.          }
  43.       }
  44.  
  45.       return var2;
  46.    }
  47. }
  48.